package br.com.insight.consultoria.entity;


import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

@Entity
@Table(name="USUARIO_PADRAO")
@PrimaryKeyJoinColumn(name="ID_USUARIO")
public class UsuarioPadrao extends Usuario{
	
	@Transient
	private static final long serialVersionUID = 1L;
	
	@OneToMany(cascade=CascadeType.REMOVE,fetch=FetchType.LAZY,mappedBy="usuario")
	@JoinColumn(name="ID_USUARIO")
	private List<IntereceAtuacao> intereceAtuacao=new ArrayList<IntereceAtuacao>();
	
	@OneToMany(cascade=CascadeType.REMOVE,fetch=FetchType.LAZY)
	@JoinColumn(name="ID_USUARIO")
	private List<ExperienciaProfissional> esperienciaProfissional=new ArrayList<ExperienciaProfissional>();
	
	@OneToMany(cascade=CascadeType.REMOVE,fetch=FetchType.LAZY,mappedBy="usuario")
	@JoinColumn(name="ID_USUARIO")
	private List<ConhecimentoLinguaEstrangeira> conhecimentoLinguaEstrangeira=new ArrayList<ConhecimentoLinguaEstrangeira>();
	
	@OneToMany(cascade=CascadeType.REMOVE,fetch=FetchType.LAZY,mappedBy="usuario")
	@JoinColumn(name="ID_USUARIO")
	private List<ConhecimentoInformatica> conhecimentoInformatica=new ArrayList<ConhecimentoInformatica>();
	
	@OneToMany(cascade=CascadeType.REMOVE,fetch=FetchType.LAZY,mappedBy="usuario")
	@JoinColumn(name="ID_USUARIO")
	private List<InformacoesAcademicas> informacoesAcademicas=new ArrayList<InformacoesAcademicas>();
	
	@OneToMany(cascade=CascadeType.REMOVE,fetch=FetchType.LAZY,mappedBy="usuario")
	@JoinColumn(name="ID_USUARIO")
	private List<CursoExtraCurricular> cursoExtraCurricular=new ArrayList<CursoExtraCurricular>();
	
	@OneToOne
	@JoinColumn(name="ID_ESTADO_CIVIL")
	private EstadoCivil estadoCivil;
	
	@OneToOne
	@JoinColumn(name="ID_UNIDADE_FEDERATIVA")
	private UnidadeFederativa unidadeFederativa;
	
	@OneToOne
	@JoinColumn(name="ID_CONHECEU_INSIGHT")
	private ConheceuInsight conheceuInsgiht;
	
	@Column(name="DATA_NASCIMENTO")
	@Temporal(TemporalType.DATE)
	private Date dataNascimento;
	
	@Column(name="SEXO", length=45)
	private String sexo;
	
	@Column(name="ENDERECO",length=50)
	private String endereco;
	
	@Column(name="BAIRRO",length=45)
	private String bairro;
	
	@Column(name="CEP",length=10)
	private String cep;
	
	@Column(name="CIDADE",length=45)
	private String cidade;
	
	@Column(name="CARTA_APRESENTACAO",length=200)
	private String cartaApresentacao;
	
	@Column(name="IC_AUTOMOVEL",length=2)
	private int icAutomovel;
	
	@Column(name="IC_ESPORTE",length=2)
	private int icEsporte;
	
	@Column(name="ESPORTE",length=30)
	private String esporte;
	
	@Column(name="IC_EMPREGADO",length=2)
	private int icEmpregado;
	
	@Column(name="IC_FUMANTE",length=2)
	private int icFumante;
	
	@Column(name="IC_DEFICIENTE",length=2)
	private int icDeficiente;
	
	@Column(name="DEFICIENCIA",length=2)
	private String deficiencia;
	
	@Column(name="IC_PAIS_ESTADO",length=2)
	private int icPaisEstado;
	
	@Column(name="IC_PRCSSO_INSGHT",length=2)
	private int icProcessoSeletivoInsight;
	
	@Column(name="IC_CLT",length=2)
	private int icClt;
	
	@Column(name="IC_ESTAGIO",length=2)
	private int icEstagio;
	
	@Column(name="IC_PESSOA_JURIDICA",length=2)
	private int icPessoaJuridica;
	
	@Column(name="IC_TEMPORARIO",length=2)
	private int icTemporario;
	
	@Column(name="IC_INTEGRAL")
	private boolean icIntegral;
	
	@Column(name="IC_MANHA")
	private boolean icManha;
	
	@Column(name="IC_TARTE")
	private boolean icTarte;
	
	@Column(name="IC_NOITE")
	private boolean icNoite;
	
	@Column(name="EMAIL",length=45)
	private String contatoEmail;
	
	@Column(name="TELEFONE_FIXO",length=45)
	private String contatoTelefoneFixo;
	
	@Column(name="TELEFONE_CELULAR",length=45)
	private String contatoTelefoneCelular;
	
	@Column(name="SALARIO", precision=3,nullable=false)
	private Double salario;
	
	public int getIcProcessoSeletivoInsight() {
		return icProcessoSeletivoInsight;
	}

	public void setIcProcessoSeletivoInsight(int icProcessoSeletivoInsight) {
		this.icProcessoSeletivoInsight = icProcessoSeletivoInsight;
	}

	public String getContatoEmail() {
		return contatoEmail;
	}

	public void setContatoEmail(String contatoEmail) {
		this.contatoEmail = contatoEmail;
	}

	public String getContatoTelefoneCelular() {
		return contatoTelefoneCelular;
	}

	public void setContatoTelefoneCelular(String contatoTelefoneCelular) {
		this.contatoTelefoneCelular = contatoTelefoneCelular;
	}

	public String getContatoTelefoneFixo() {
		return contatoTelefoneFixo;
	}

	public void setContatoTelefoneFixo(String contatoTelefoneFixo) {
		this.contatoTelefoneFixo = contatoTelefoneFixo;
	}

	public String getBairro() {
		return bairro;
	}

	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	public String getCartaApresentacao() {
		return cartaApresentacao;
	}

	public void setCartaApresentacao(String cartaApresentacao) {
		this.cartaApresentacao = cartaApresentacao;
	}

	public String getCep() {
		return cep;
	}

	public void setCep(String cep) {
		this.cep = cep;
	}

	public String getCidade() {
		return cidade;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	public String getEndereco() {
		return endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public String getEsporte() {
		return esporte;
	}

	public void setEsporte(String esporte) {
		this.esporte = esporte;
	}

	public int getIcAutomovel() {
		return icAutomovel;
	}

	public void setIcAutomovel(int icAutomovel) {
		this.icAutomovel = icAutomovel;
	}

	public int getIcClt() {
		return icClt;
	}

	public void setIcClt(int icClt) {
		this.icClt = icClt;
	}

	public int getIcEmpregado() {
		return icEmpregado;
	}

	public void setIcEmpregado(int icEmpregado) {
		this.icEmpregado = icEmpregado;
	}

	public int getIcEsporte() {
		return icEsporte;
	}

	public void setIcEsporte(int icEsporte) {
		this.icEsporte = icEsporte;
	}

	public int getIcEstagio() {
		return icEstagio;
	}

	public void setIcEstagio(int icEstagio) {
		this.icEstagio = icEstagio;
	}

	public boolean isIcIntegral() {
		return icIntegral;
	}

	public void setIcIntegral(boolean icIntegral) {
		this.icIntegral = icIntegral;
	}

	public boolean isIcManha() {
		return icManha;
	}

	public void setIcManha(boolean icManha) {
		this.icManha = icManha;
	}

	public boolean isIcTarte() {
		return icTarte;
	}

	public void setIcTarte(boolean icTarte) {
		this.icTarte = icTarte;
	}

	public boolean isIcNoite() {
		return icNoite;
	}

	public void setIcNoite(boolean icNoite) {
		this.icNoite = icNoite;
	}

	public int getIcPaisEstado() {
		return icPaisEstado;
	}

	public void setIcPaisEstado(int icPaisEstado) {
		this.icPaisEstado = icPaisEstado;
	}

	public int getIcPessoaJuridica() {
		return icPessoaJuridica;
	}

	public void setIcPessoaJuridica(int icPessoaJuridica) {
		this.icPessoaJuridica = icPessoaJuridica;
	}

	public int getIcTemporario() {
		return icTemporario;
	}

	public void setIcTemporario(int icTemporario) {
		this.icTemporario = icTemporario;
	}

	public Double getSalario() {
		return salario;
	}

	public void setSalario(Double salario) {
		this.salario = salario;
	}

	public String getSexo() {
		return sexo;
	}

	public void setSexo(String sexo) {
		this.sexo = sexo;
	}

	public Date getDataNascimento() {
		return dataNascimento;
	}

	public void setDataNascimento(Date dataNascimento) {
		this.dataNascimento = dataNascimento;
	}

	public List<IntereceAtuacao> getIntereceAtuacao() {
		return intereceAtuacao;
	}

	public void setIntereceAtuacao(List<IntereceAtuacao> intereceAtuacao) {
		this.intereceAtuacao = intereceAtuacao;
	}

	public List<ExperienciaProfissional> getEsperienciaProfissional() {
		return esperienciaProfissional;
	}

	public void setEsperienciaProfissional(
			List<ExperienciaProfissional> esperienciaProfissional) {
		this.esperienciaProfissional = esperienciaProfissional;
	}

	public EstadoCivil getEstadoCivil() {
		return estadoCivil;
	}

	public void setEstadoCivil(EstadoCivil estadoCivil) {
		this.estadoCivil = estadoCivil;
	}

	public UnidadeFederativa getUnidadeFederativa() {
		return unidadeFederativa;
	}

	public void setUnidadeFederativa(UnidadeFederativa unidadeFederativa) {
		this.unidadeFederativa = unidadeFederativa;
	}

	public List<ConhecimentoLinguaEstrangeira> getConhecimentoLinguaEstrangeira() {
		return conhecimentoLinguaEstrangeira;
	}

	public void setConhecimentoLinguaEstrangeira(
			List<ConhecimentoLinguaEstrangeira> conhecimentoLinguaEstrangeira) {
		this.conhecimentoLinguaEstrangeira = conhecimentoLinguaEstrangeira;
	}

	public List<ConhecimentoInformatica> getConhecimentoInformatica() {
		return conhecimentoInformatica;
	}

	public void setConhecimentoInformatica(
			List<ConhecimentoInformatica> conhecimentoInformatica) {
		this.conhecimentoInformatica = conhecimentoInformatica;
	}

	public List<InformacoesAcademicas> getInformacoesAcademicas() {
		return informacoesAcademicas;
	}

	public void setInformacoesAcademicas(
			List<InformacoesAcademicas> informacoesAcademicas) {
		this.informacoesAcademicas = informacoesAcademicas;
	}

	public List<CursoExtraCurricular> getCursoExtraCurricular() {
		return cursoExtraCurricular;
	}

	public void setCursoExtraCurricular(
			List<CursoExtraCurricular> cursoExtraCurricular) {
		this.cursoExtraCurricular = cursoExtraCurricular;
	}

	public int getIcFumante() {
		return icFumante;
	}

	public void setIcFumante(int icFumante) {
		this.icFumante = icFumante;
	}

	public String getDeficiencia() {
		return deficiencia;
	}

	public void setDeficiencia(String deficiencia) {
		this.deficiencia = deficiencia;
	}

	public int getIcDeficiente() {
		return icDeficiente;
	}

	public void setIcDeficiente(int icDeficiente) {
		this.icDeficiente = icDeficiente;
	}

	public ConheceuInsight getConheceuInsgiht() {
		return conheceuInsgiht;
	}

	public void setConheceuInsgiht(ConheceuInsight conheceuInsgiht) {
		this.conheceuInsgiht = conheceuInsgiht;
	}

}